package com.wwt.server.controller;


import com.wwt.server.pojo.Joblevel;
import com.wwt.server.service.IJoblevelService;
import com.wwt.server.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;

/**
 * <p>
 * 前端控制器
 * </p>
 *
 * @author Tao
 * @since 2021-12-05
 */
@RestController
@Api(tags = "职称控制器")
@RequestMapping("/system/basic/joblevel")
public class JoblevelController {
    @Autowired
    private IJoblevelService joblevelService;

    @GetMapping("/")
    @ApiOperation(value = "获取所有职称")
    public Result getAllJoblevel() {
        List<Joblevel> list = joblevelService.list();
        return Result.success("获取成功！", list);
    }

    @PostMapping("/")
    @ApiOperation(value = "添加职称")
    public Result addJoblevel(@RequestBody Joblevel joblevel) {
        joblevel.setCreatedate(LocalDateTime.now());
        boolean result = joblevelService.save(joblevel);
        if (result)
            return Result.success("添加成功！", 200);
        return Result.fail("添加失败！", 500);
    }

    @PutMapping("/")
    @ApiOperation(value = "更新职称")
    public Result updateJoblevel(@RequestBody Joblevel joblevel) {
        boolean result = joblevelService.updateById(joblevel);
        if (result)
            return Result.success("更新成功！", 200);
        return Result.fail("更新失败！", 500);
    }

    @DeleteMapping("/{id}")
    @ApiOperation(value = "删除单个职称")
    public Result deleteJoblevel(@PathVariable Integer id) {
        boolean result = joblevelService.removeById(id);
        if (result)
            return Result.success("删除成功！", 200);
        return Result.fail("删除失败！", 500);
    }

    @DeleteMapping("/")
    @ApiOperation(value = "批量删除职称")
    public Result deleteBatchJoblevel(Integer[] ids) {
        boolean result = joblevelService.removeByIds(Arrays.asList(ids));
        if (result)
            return Result.success("删除成功！", 200);
        return Result.fail("删除失败！", 500);
    }
}
